import { userInfo } from '../user'
import { enableReport } from '../config'
import { log } from '../message'
import { catchFn } from '../common'

/** 上报基础信息 */
const reportBase: Record<string, string> = {
  /** 渠道 */
  channel_id: 'default',
}

/** 友盟API */
// let uma: any = null
// let appKey = ''

// #ifdef MP-WEIXIN
// @ts-ignore
const obs = uni.obs

// @ts-ignore
// import _uma from 'umtrack-wx'

// uma = _uma
// appKey = '6824616279267e02106396dd'
// #endif

// #ifdef MP-TOUTIAO
// import uma from 'umtrack-tt'

// uma = _uma
// #endif

// enableReport &&
//   uma?.init({
//     appKey,
//     useOpenid: true, // 是否使用openid进行统计，此项为false时将使用友盟+随机ID进行用户统计。使用openid来统计微信小程序的用户，会使统计的指标更为准确，对系统准确性要求高的应用推荐使用OpenID。
//     autoGetOpenid: true, // 是否需要通过友盟后台获取openid，如若需要，请到友盟后台设置appId及secret
//     debug: false,
//     uploadUserInfo: true, // 自动上传用户信息，设为false取消上传，默认为false
//   })

/**
 * 数据上报
 * @param event 事件名
 * @param payload 限制数量
 * @param payload2 不限数量
 */
const report = (event: string, payload = {}, _payload2 = {}) =>
  catchFn(
    async () => {
      log(['上报事件: ' + event, payload])

      if (!enableReport) return

      // #ifdef MP-WEIXIN
      obs.setCustomId(userInfo.value?.id || 'guest')

      const ok = obs.event(event, {
        ...payload,
        // login: isLogin.value ? 1 : 0,
        // random_id,
        // create_time: Date.now().toString(),
        // miniProgram_env: miniProgram.envVersion,
        // miniProgram_version: miniProgram.version,
        ...reportBase,
      })

      !ok && console.warn('WX上报失败', event)

      // uma.trackEvent(event, {
      //   ...payload,
      //   ...payload2,
      //   login: isLogin.value ? '1' : '0',
      //   user_id: userInfo.value?.id || 'guest',
      //   random_id,
      //   create_time: Date.now().toString(),
      //   miniProgram_version: miniProgramEnv.version || miniProgramEnv.env,
      //   ...reportBase,
      // })
      // #endif

      // #ifdef WEB
      //  TODO: web端数据上报
      // #endif

      // #ifdef APP
      //  TODO: app端数据上报
      // #endif
    },
    {
      disableTips: true,
      disableLoading: true,
    },
  )

export { reportBase, report }
